<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------

/*
 * 动态注册
 * Route::rule('路由表达式','路由地址','请求类型','路由参数（数组）','变量规则（数组）');
 *
路由规则:URL访问规则（包括静态规则和动态规则）,只有符合规则的路由才能正确访问;
路由地址:实际访问的地址（可以是控制器操作、类的方法或者闭包）;
请求类型:表示当前路由生效使用的请求类型,包括GET/POST/PUT/DELETE等,如果希望任何请求都能访问使用*号（默认值）。
路由参数:路由匹配的条件约束或设置参数（用于检测或者解析）;
路由变量:路由规则里面的动态变量以及PATH_INFO里面的参数都称之为路由变量;
变量规则:路由规则中的变量的匹配规则（正则表达式）;

支持任意请求规则
Route::rule('new/:id','News/update');
定义GET请求路由规则
Route::get('new/:id','News/read');
定义POST请求路由规则
Route::post('new/:id','News/update');
定义PUT请求路由规则
Route::put('new/:id','News/update');
定义DELETE请求路由规则
Route::delete('new/:id','News/delete');
所有请求都支持的路由规则
Route::any('new/:id','News/read');
*/
use think\Route;
Route::get('home', 'index/index/index');
Route::post('p', 'index/index/ppp');
Route::any('xxoo', 'index/index/index');

// 路由参数
// Route::get('user', 'index/index/user'); // 无参
// Route::get('user/:id', 'index/index/user'); // 必传参数
// Route::get('user/[:id]', 'index/index/user'); // 可选参数
Route::get('user/[:id]$', 'index/index/user'); //  匹配参数


// 闭包定义
// Route::get('user/:id', function ($id) {
//     return 'ID:'. $id;
// });

// 路由规则的参数
Route::get('userlist', 'admin/user/index', ['ext'=>'html|shtml']);
/*
 * http://tp5.com/index/blog/index/id/99.html
 * http://tp5.com/index/blog/read/name/laowang.html
 * http://tp5.com/index/blog/article/year/2014/month/09.html
 */
// 变量规则
// 按照指定的规则去分配变量.越容易匹配的规则越往后放
// // 年月
// Route::get('blog/:year/:month', 'index/blog/article', ['method'=>'get'], ['year'=>'\d{4}', 'month'=>'\d{2}']);
// // ID  http://tp5.com/blog/55.html
// Route::get('blog/:id', 'index/blog/index', ['method'=>'get'], ['id'=>'\d+']);
// // NAME
// Route::get('blog/:name', 'index/blog/read', ['method'=>'get'], ['name'=>'\w+']);

// 路由分组
Route::group('blog', [
    ':year/:month' =>
        ['index/blog/article', ['method'=>'get'], ['year'=>'\d{4}', 'month'=>'\d{2}']],
    ':id' =>
        ['index/blog/index', ['method'=>'get'], ['id'=>'\d+']],
    ':name' =>
        ['index/blog/read', ['method'=>'get'], ['name'=>'\w+']]
]);

// 生成URL  参见此方法
Route::get('url', 'index/index/url');

// 资源路由 会生成7个对应的路由
Route::get('users/readpage/:id', 'rest/User/readpage');
Route::resource('users', 'rest/User');

// 静态注册
return [
    // '__pattern__' => [
    //     'name' => '\w+',
    // ],
    // '[hello]'     => [
    //     ':id'   => ['index/hello', ['method' => 'get'], ['id' => '\d+']],
    //     ':name' => ['index/hello', ['method' => 'post']],
    // ],

];
